<?php namespace system\model;


use Hdphp\model\Model;

class User extends Model{
    protected $validate=[
        //['字段名','验证方法','提示信息',验证条件,验证时间]
       ['uname','required',"请输入用户名",3,3],
        ['password','required',"请输入密码",3,3],
    ];
    public function login(){
       //自动验证，执行create()方法触发自动验证
        if(!$this->create()) return false;
       //判断验证码是否正确
       if(strtoupper($_POST['code'])!=$_SESSION['code']){
           //代码走到这里说明验证码错误，这里把错误信息存到error属性里面，就可以被getError接受到
           $this->error='验证码错误'; return false;
       }
        //比对用户名是否正确
        //first()是获得一条数据，是一维数组
        //get()是获得多条数据，是二维数组
        if(!$data = $this->where('uname',$_POST['uname'])->first()){
            //代码走到里面说明用户名不存在
            $this->error='用户名不存在';return false;
        }
        //比对密码是否正确
        if(md5($_POST['password'])!=$data['password']){
            $this->error='密码不正确'; return false;
        }
        //代码走到这里说明验证码 用户名 密码都正确
        $_SESSION['admin']['uid']=$data['uid'];
        $_SESSION['admin']['uname']=$data['uname'];
        return true;

    }
    public function edit(){
        $this->validate=[
            ['password','required',"请输入旧密码",3,3],
            ['new_password','required',"请输入新密码",3,3],
            ['confirm_password','confirm:new_password','两次密码不一致',3,3],
        ];
        //自动执行验证
        if(!$this->create()) return false;
        //判断原始密码是否正确
        $data = $this->where('uid',$_SESSION['admin']['uid'])->first();
        if(md5($_POST['password'])!=$data['password']){
            $this->error='原始密码不正确';return false;
        }
        //两次新密码是否一致 （上面已经自动验证）
        //新密码和旧密码不能一样
        if($_POST['new_password']==$_POST['password']){
            $this->error='新密码和旧密码不能一样';return false;
        }
        //数据库密码的修改
        $data= $this->where('uid',$_SESSION['admin']['uid'])->update(['password'=>md5($_POST['new_password'])]);
         if(!$data){
             $this->error='操作失败，请稍后再试';return false;
         }
        return true;
    }
}
